package com.itheima.d10_sort_bubble;

import java.util.Arrays;

/**
 * 目标：掌握冒泡排序
 * 核心思想：两两比较，将最大的数据放在最后
 * 特点：
 *      比较的轮数：数据长度-1次
 *      每次比较的次数：递减
 */
public class Test {

    public static void main(String[] args) {
        //1.准备排序的数据
        int [] arr = {1,22,3,44,5,66,7};
        
        //2.实现冒泡排序
        //比较的轮数：数据长度-1次
        /*for (int i = 0; i < 6; i++) {
            
            //每轮需要两两比较，找出最大的数据，放到最后
            for (int j = 0; j < 6-i ; j++) {
                //待比较的两个数：arr[j]  arr[j+1]
                if(arr[j]  >  arr[j+1]){
                    int tmp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }*/

        //重构代码
        for (int i = 0; i < arr.length-1; i++) {

            //每轮需要两两比较，找出最大的数据，放到最后
            //简化：随着轮次的增加，待比较的数据减少
            for (int j = 0; j < arr.length-1 - i ; j++) {
                //待比较的两个数：arr[j]  arr[j+1]
                if(arr[j]  <  arr[j+1]){
                    int tmp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }

        //3.打印排序后的结果
        System.out.println(Arrays.toString(arr));
        
    }
}













